package models

import (
	"gorm.io/gorm"
	"order_srv/basic/config"
	"time"
)

type OrderLatLnt struct {
	Id        uint32    `gorm:"column:id;type:int UNSIGNED;primaryKey;not null;" json:"id"`
	OrderId   int32     `gorm:"column:order_id;type:int;not null;" json:"order_id"`
	StartLat  float64   `gorm:"column:start_lat;type:decimal(10, 2);comment:起点纬度;not null;" json:"start_lat"`   // 起点纬度
	StartLint float64   `gorm:"column:start_lint;type:decimal(10, 2);comment:起点经度;not null;" json:"start_lint"` // 起点经度
	EndLat    float64   `gorm:"column:end_lat;type:decimal(10, 2);comment:终点纬度;not null;" json:"end_lat"`       // 终点纬度
	EndLnt    float64   `gorm:"column:end_lnt;type:decimal(10, 2);comment:终点经度;not null;" json:"end_lnt"`       // 终点经度
	CreateAt  time.Time `gorm:"column:create_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"create_at"`
	UpdateAt  time.Time `gorm:"column:update_at;type:datetime;not null;default:CURRENT_TIMESTAMP;" json:"update_at"`
	DeleteAt  time.Time `gorm:"column:delete_at;type:datetime;default:NULL;" json:"delete_at"`
}

func (o *OrderLatLnt) TableName() string {
	return "order_lat_lnt"
}
func (o *OrderLatLnt) GetByOrderId() error {
	return config.DB.Where("order_id = ?", o.OrderId).Order("create_at desc").Find(&o).Error
}

// 记录订单起终点经纬度
func (o *OrderLatLnt) Create(tx *gorm.DB) error {
	return tx.Create(&o).Error
}
